package io.renren.modules.communityService.service.impl;

import io.renren.modules.communityService.dto.MiniAppDbUserQuestionnaireSaveDTO;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import io.renren.common.utils.PageUtils;
import io.renren.common.utils.Query;

import io.renren.modules.communityService.dao.DbUserQuestionnaireDao;
import io.renren.modules.communityService.entity.DbUserQuestionnaireEntity;
import io.renren.modules.communityService.dto.DbUserQuestionnaireDTO;
import io.renren.modules.communityService.vo.DbUserQuestionnaireVO;
import io.renren.modules.communityService.service.DbUserQuestionnaireService;
import io.renren.modules.communityService.conver.DbUserQuestionnaireConver;

import java.io.Serializable;
import java.util.Collection;
import java.util.Date;


@Service("dbUserQuestionnaireService")
public class DbUserQuestionnaireServiceImpl extends ServiceImpl<DbUserQuestionnaireDao, DbUserQuestionnaireEntity> implements DbUserQuestionnaireService {

    @Override
    public PageUtils<DbUserQuestionnaireVO> queryPage(DbUserQuestionnaireDTO dbUserQuestionnaire) {
        IPage<DbUserQuestionnaireEntity> page = baseMapper.selectPage(
                new Query<DbUserQuestionnaireEntity>(dbUserQuestionnaire).getPage(),
                new QueryWrapper<DbUserQuestionnaireEntity>()
        );

        return PageUtils.<DbUserQuestionnaireVO>page(page).setList(DbUserQuestionnaireConver.MAPPER.conver(page.getRecords()));
    }
    @Override
    public DbUserQuestionnaireVO getById(Integer id) {
        return DbUserQuestionnaireConver.MAPPER.conver(baseMapper.selectById(id));
    }

    @Override
    public boolean save(DbUserQuestionnaireDTO dbUserQuestionnaire) {
        DbUserQuestionnaireEntity dbUserQuestionnaireEntity = DbUserQuestionnaireConver.MAPPER.converDTO(dbUserQuestionnaire);
        return this.save(dbUserQuestionnaireEntity);
    }

    @Override
    public boolean updateById(DbUserQuestionnaireDTO dbUserQuestionnaire) {
        DbUserQuestionnaireEntity dbUserQuestionnaireEntity = DbUserQuestionnaireConver.MAPPER.converDTO(dbUserQuestionnaire);
        return this.updateById(dbUserQuestionnaireEntity);
    }


    @Override
    public boolean removeById(Serializable id) {
        return super.removeById(id);
    }


    @Override
    public boolean removeByIds(Collection<? extends Serializable> ids) {
        return super.removeByIds(ids);
    }


    @Override
    public void save(MiniAppDbUserQuestionnaireSaveDTO dto) {
        DbUserQuestionnaireEntity dbUserQuestionnaireEntity = DbUserQuestionnaireConver.MAPPER.conver1(dto);
        dbUserQuestionnaireEntity.setCreatedAt(new Date());
        dbUserQuestionnaireEntity.setUpdatedAt(new Date());
        this.save(dbUserQuestionnaireEntity);
    }

}
